package com.boolib.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ShopProductExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ShopProductExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andProductTitleIsNull() {
            addCriterion("product_title is null");
            return (Criteria) this;
        }

        public Criteria andProductTitleIsNotNull() {
            addCriterion("product_title is not null");
            return (Criteria) this;
        }

        public Criteria andProductTitleEqualTo(String value) {
            addCriterion("product_title =", value, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleNotEqualTo(String value) {
            addCriterion("product_title <>", value, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleGreaterThan(String value) {
            addCriterion("product_title >", value, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleGreaterThanOrEqualTo(String value) {
            addCriterion("product_title >=", value, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleLessThan(String value) {
            addCriterion("product_title <", value, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleLessThanOrEqualTo(String value) {
            addCriterion("product_title <=", value, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleLike(String value) {
            addCriterion("product_title like", value, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleNotLike(String value) {
            addCriterion("product_title not like", value, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleIn(List<String> values) {
            addCriterion("product_title in", values, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleNotIn(List<String> values) {
            addCriterion("product_title not in", values, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleBetween(String value1, String value2) {
            addCriterion("product_title between", value1, value2, "productTitle");
            return (Criteria) this;
        }

        public Criteria andProductTitleNotBetween(String value1, String value2) {
            addCriterion("product_title not between", value1, value2, "productTitle");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnIsNull() {
            addCriterion("campaign_btn is null");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnIsNotNull() {
            addCriterion("campaign_btn is not null");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnEqualTo(Integer value) {
            addCriterion("campaign_btn =", value, "campaignBtn");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnNotEqualTo(Integer value) {
            addCriterion("campaign_btn <>", value, "campaignBtn");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnGreaterThan(Integer value) {
            addCriterion("campaign_btn >", value, "campaignBtn");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnGreaterThanOrEqualTo(Integer value) {
            addCriterion("campaign_btn >=", value, "campaignBtn");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnLessThan(Integer value) {
            addCriterion("campaign_btn <", value, "campaignBtn");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnLessThanOrEqualTo(Integer value) {
            addCriterion("campaign_btn <=", value, "campaignBtn");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnIn(List<Integer> values) {
            addCriterion("campaign_btn in", values, "campaignBtn");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnNotIn(List<Integer> values) {
            addCriterion("campaign_btn not in", values, "campaignBtn");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnBetween(Integer value1, Integer value2) {
            addCriterion("campaign_btn between", value1, value2, "campaignBtn");
            return (Criteria) this;
        }

        public Criteria andCampaignBtnNotBetween(Integer value1, Integer value2) {
            addCriterion("campaign_btn not between", value1, value2, "campaignBtn");
            return (Criteria) this;
        }

        public Criteria andProductCampaignIsNull() {
            addCriterion("product_campaign is null");
            return (Criteria) this;
        }

        public Criteria andProductCampaignIsNotNull() {
            addCriterion("product_campaign is not null");
            return (Criteria) this;
        }

        public Criteria andProductCampaignEqualTo(String value) {
            addCriterion("product_campaign =", value, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignNotEqualTo(String value) {
            addCriterion("product_campaign <>", value, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignGreaterThan(String value) {
            addCriterion("product_campaign >", value, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignGreaterThanOrEqualTo(String value) {
            addCriterion("product_campaign >=", value, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignLessThan(String value) {
            addCriterion("product_campaign <", value, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignLessThanOrEqualTo(String value) {
            addCriterion("product_campaign <=", value, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignLike(String value) {
            addCriterion("product_campaign like", value, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignNotLike(String value) {
            addCriterion("product_campaign not like", value, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignIn(List<String> values) {
            addCriterion("product_campaign in", values, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignNotIn(List<String> values) {
            addCriterion("product_campaign not in", values, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignBetween(String value1, String value2) {
            addCriterion("product_campaign between", value1, value2, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCampaignNotBetween(String value1, String value2) {
            addCriterion("product_campaign not between", value1, value2, "productCampaign");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNull() {
            addCriterion("product_code is null");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNotNull() {
            addCriterion("product_code is not null");
            return (Criteria) this;
        }

        public Criteria andProductCodeEqualTo(String value) {
            addCriterion("product_code =", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotEqualTo(String value) {
            addCriterion("product_code <>", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThan(String value) {
            addCriterion("product_code >", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThanOrEqualTo(String value) {
            addCriterion("product_code >=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThan(String value) {
            addCriterion("product_code <", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThanOrEqualTo(String value) {
            addCriterion("product_code <=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLike(String value) {
            addCriterion("product_code like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotLike(String value) {
            addCriterion("product_code not like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeIn(List<String> values) {
            addCriterion("product_code in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotIn(List<String> values) {
            addCriterion("product_code not in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeBetween(String value1, String value2) {
            addCriterion("product_code between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotBetween(String value1, String value2) {
            addCriterion("product_code not between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductMainImgIsNull() {
            addCriterion("product_main_img is null");
            return (Criteria) this;
        }

        public Criteria andProductMainImgIsNotNull() {
            addCriterion("product_main_img is not null");
            return (Criteria) this;
        }

        public Criteria andProductMainImgEqualTo(String value) {
            addCriterion("product_main_img =", value, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgNotEqualTo(String value) {
            addCriterion("product_main_img <>", value, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgGreaterThan(String value) {
            addCriterion("product_main_img >", value, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgGreaterThanOrEqualTo(String value) {
            addCriterion("product_main_img >=", value, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgLessThan(String value) {
            addCriterion("product_main_img <", value, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgLessThanOrEqualTo(String value) {
            addCriterion("product_main_img <=", value, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgLike(String value) {
            addCriterion("product_main_img like", value, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgNotLike(String value) {
            addCriterion("product_main_img not like", value, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgIn(List<String> values) {
            addCriterion("product_main_img in", values, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgNotIn(List<String> values) {
            addCriterion("product_main_img not in", values, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgBetween(String value1, String value2) {
            addCriterion("product_main_img between", value1, value2, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductMainImgNotBetween(String value1, String value2) {
            addCriterion("product_main_img not between", value1, value2, "productMainImg");
            return (Criteria) this;
        }

        public Criteria andProductImagesIsNull() {
            addCriterion("product_images is null");
            return (Criteria) this;
        }

        public Criteria andProductImagesIsNotNull() {
            addCriterion("product_images is not null");
            return (Criteria) this;
        }

        public Criteria andProductImagesEqualTo(String value) {
            addCriterion("product_images =", value, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesNotEqualTo(String value) {
            addCriterion("product_images <>", value, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesGreaterThan(String value) {
            addCriterion("product_images >", value, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesGreaterThanOrEqualTo(String value) {
            addCriterion("product_images >=", value, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesLessThan(String value) {
            addCriterion("product_images <", value, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesLessThanOrEqualTo(String value) {
            addCriterion("product_images <=", value, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesLike(String value) {
            addCriterion("product_images like", value, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesNotLike(String value) {
            addCriterion("product_images not like", value, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesIn(List<String> values) {
            addCriterion("product_images in", values, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesNotIn(List<String> values) {
            addCriterion("product_images not in", values, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesBetween(String value1, String value2) {
            addCriterion("product_images between", value1, value2, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductImagesNotBetween(String value1, String value2) {
            addCriterion("product_images not between", value1, value2, "productImages");
            return (Criteria) this;
        }

        public Criteria andProductVideoIsNull() {
            addCriterion("product_video is null");
            return (Criteria) this;
        }

        public Criteria andProductVideoIsNotNull() {
            addCriterion("product_video is not null");
            return (Criteria) this;
        }

        public Criteria andProductVideoEqualTo(String value) {
            addCriterion("product_video =", value, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoNotEqualTo(String value) {
            addCriterion("product_video <>", value, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoGreaterThan(String value) {
            addCriterion("product_video >", value, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoGreaterThanOrEqualTo(String value) {
            addCriterion("product_video >=", value, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoLessThan(String value) {
            addCriterion("product_video <", value, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoLessThanOrEqualTo(String value) {
            addCriterion("product_video <=", value, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoLike(String value) {
            addCriterion("product_video like", value, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoNotLike(String value) {
            addCriterion("product_video not like", value, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoIn(List<String> values) {
            addCriterion("product_video in", values, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoNotIn(List<String> values) {
            addCriterion("product_video not in", values, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoBetween(String value1, String value2) {
            addCriterion("product_video between", value1, value2, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductVideoNotBetween(String value1, String value2) {
            addCriterion("product_video not between", value1, value2, "productVideo");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeIsNull() {
            addCriterion("product_spu_code is null");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeIsNotNull() {
            addCriterion("product_spu_code is not null");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeEqualTo(String value) {
            addCriterion("product_spu_code =", value, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeNotEqualTo(String value) {
            addCriterion("product_spu_code <>", value, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeGreaterThan(String value) {
            addCriterion("product_spu_code >", value, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeGreaterThanOrEqualTo(String value) {
            addCriterion("product_spu_code >=", value, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeLessThan(String value) {
            addCriterion("product_spu_code <", value, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeLessThanOrEqualTo(String value) {
            addCriterion("product_spu_code <=", value, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeLike(String value) {
            addCriterion("product_spu_code like", value, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeNotLike(String value) {
            addCriterion("product_spu_code not like", value, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeIn(List<String> values) {
            addCriterion("product_spu_code in", values, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeNotIn(List<String> values) {
            addCriterion("product_spu_code not in", values, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeBetween(String value1, String value2) {
            addCriterion("product_spu_code between", value1, value2, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCodeNotBetween(String value1, String value2) {
            addCriterion("product_spu_code not between", value1, value2, "productSpuCode");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountIsNull() {
            addCriterion("product_spu_count is null");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountIsNotNull() {
            addCriterion("product_spu_count is not null");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountEqualTo(Integer value) {
            addCriterion("product_spu_count =", value, "productSpuCount");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountNotEqualTo(Integer value) {
            addCriterion("product_spu_count <>", value, "productSpuCount");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountGreaterThan(Integer value) {
            addCriterion("product_spu_count >", value, "productSpuCount");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_spu_count >=", value, "productSpuCount");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountLessThan(Integer value) {
            addCriterion("product_spu_count <", value, "productSpuCount");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountLessThanOrEqualTo(Integer value) {
            addCriterion("product_spu_count <=", value, "productSpuCount");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountIn(List<Integer> values) {
            addCriterion("product_spu_count in", values, "productSpuCount");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountNotIn(List<Integer> values) {
            addCriterion("product_spu_count not in", values, "productSpuCount");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountBetween(Integer value1, Integer value2) {
            addCriterion("product_spu_count between", value1, value2, "productSpuCount");
            return (Criteria) this;
        }

        public Criteria andProductSpuCountNotBetween(Integer value1, Integer value2) {
            addCriterion("product_spu_count not between", value1, value2, "productSpuCount");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNull() {
            addCriterion("category_id is null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNotNull() {
            addCriterion("category_id is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdEqualTo(Integer value) {
            addCriterion("category_id =", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotEqualTo(Integer value) {
            addCriterion("category_id <>", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThan(Integer value) {
            addCriterion("category_id >", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("category_id >=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThan(Integer value) {
            addCriterion("category_id <", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThanOrEqualTo(Integer value) {
            addCriterion("category_id <=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIn(List<Integer> values) {
            addCriterion("category_id in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotIn(List<Integer> values) {
            addCriterion("category_id not in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdBetween(Integer value1, Integer value2) {
            addCriterion("category_id between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotBetween(Integer value1, Integer value2) {
            addCriterion("category_id not between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andBrandIdIsNull() {
            addCriterion("brand_id is null");
            return (Criteria) this;
        }

        public Criteria andBrandIdIsNotNull() {
            addCriterion("brand_id is not null");
            return (Criteria) this;
        }

        public Criteria andBrandIdEqualTo(Integer value) {
            addCriterion("brand_id =", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotEqualTo(Integer value) {
            addCriterion("brand_id <>", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdGreaterThan(Integer value) {
            addCriterion("brand_id >", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("brand_id >=", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdLessThan(Integer value) {
            addCriterion("brand_id <", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdLessThanOrEqualTo(Integer value) {
            addCriterion("brand_id <=", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdIn(List<Integer> values) {
            addCriterion("brand_id in", values, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotIn(List<Integer> values) {
            addCriterion("brand_id not in", values, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdBetween(Integer value1, Integer value2) {
            addCriterion("brand_id between", value1, value2, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotBetween(Integer value1, Integer value2) {
            addCriterion("brand_id not between", value1, value2, "brandId");
            return (Criteria) this;
        }

        public Criteria andCreateByIsNull() {
            addCriterion("create_by is null");
            return (Criteria) this;
        }

        public Criteria andCreateByIsNotNull() {
            addCriterion("create_by is not null");
            return (Criteria) this;
        }

        public Criteria andCreateByEqualTo(String value) {
            addCriterion("create_by =", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotEqualTo(String value) {
            addCriterion("create_by <>", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByGreaterThan(String value) {
            addCriterion("create_by >", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByGreaterThanOrEqualTo(String value) {
            addCriterion("create_by >=", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLessThan(String value) {
            addCriterion("create_by <", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLessThanOrEqualTo(String value) {
            addCriterion("create_by <=", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLike(String value) {
            addCriterion("create_by like", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotLike(String value) {
            addCriterion("create_by not like", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByIn(List<String> values) {
            addCriterion("create_by in", values, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotIn(List<String> values) {
            addCriterion("create_by not in", values, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByBetween(String value1, String value2) {
            addCriterion("create_by between", value1, value2, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotBetween(String value1, String value2) {
            addCriterion("create_by not between", value1, value2, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateByIsNull() {
            addCriterion("update_by is null");
            return (Criteria) this;
        }

        public Criteria andUpdateByIsNotNull() {
            addCriterion("update_by is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateByEqualTo(String value) {
            addCriterion("update_by =", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotEqualTo(String value) {
            addCriterion("update_by <>", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByGreaterThan(String value) {
            addCriterion("update_by >", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByGreaterThanOrEqualTo(String value) {
            addCriterion("update_by >=", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLessThan(String value) {
            addCriterion("update_by <", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLessThanOrEqualTo(String value) {
            addCriterion("update_by <=", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLike(String value) {
            addCriterion("update_by like", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotLike(String value) {
            addCriterion("update_by not like", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByIn(List<String> values) {
            addCriterion("update_by in", values, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotIn(List<String> values) {
            addCriterion("update_by not in", values, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByBetween(String value1, String value2) {
            addCriterion("update_by between", value1, value2, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotBetween(String value1, String value2) {
            addCriterion("update_by not between", value1, value2, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}